import FlyIO from 'flyio/dist/npm/wx'
import store from '@/store'

// 创建新的 FlyIO 实例
const http = new FlyIO()

// 设置超时(服务器性能偏差)
http.config.timeout = 30000

// 设置请求基地址
http.config.baseURL = 'https://api-hmugo-web.itheima.net/api/public/v1'

// 请求拦截器
http.interceptors.request.use((request) => {
  uni.showLoading({
    title: '加载中...',
    mask: true, // 遮罩
  })
  const token = store.state.user.token
  if (token && request.url.includes('/my/')) {
    request.headers.Authorization = token
  }
  return request
})

// 响应拦截器
http.interceptors.response.use(
  (response) => {
    // 显示加载框
    uni.hideLoading()

    // 只取返回的数据字段  =>  res.data.message  res.message
    return response.data
  },
  (err) => {
    uni.hideLoading()
    return Promise.reject(err)
  }
)

// 导出
export default http

// 某个文件中
// import http from '...'
// 1. const res = await http.get('/home/swiperdata')
//          res.message

// 小程序支付:
// 1. 创建订单  将订单相关信息(金额, 商品信息, 收货地址) 给到后端   后端都返回一个重要的订单编号!!
// 2. 预支付(获取支付参数)  通过第一步得到的订单编号 发请求获取支付相关参数
// 3. 支付 wx.requestPayment()  发起真正的支付  ; 支付完成后, 一定需要查询订单状态 然后给提示
